﻿//==============================================================================  
//Copyright (C) 2012-2015 9UN.ORG. All rights reserved. 
//GUID：46172595-6b69-4526-b9da-426d663f5b05
//CLR Version: 4.0.30319.18033
//Code Author：Kevin Wang
//Contact：Email(Admin@9un.org),QQ(265382 or 74344)
//Filename：VlcInternalException
//Namespace：RuanRang.Media.Core.Exceptions
//Functions：VlcInternalException  
//Created by Kevin Wang at 2013/2/2 23:05:09 http://blog.9un.org
//============================================================================== 

using System;
using System.Runtime.Serialization;
using RuanRang.Media.Core.Internal.Interop;

namespace RuanRang.Media.Core.Exceptions
{
    /// <summary>
    /// Represents an exception handled during work with native libraries.
    /// </summary>
    [Serializable]
    public sealed class VlcInternalException : MediaPlayerException
    {
        /// <summary>
        /// Default constructor. This constructor automatically calls 
        /// <see cref="LibVlcCoreInterop.libvlc_errmsg"/> method.
        /// </summary>
        public VlcInternalException() : base(LibVlcCoreInterop.libvlc_errmsg()) {
        }

        /// <summary>
        /// Constructor with string message.
        /// </summary>
        public VlcInternalException(string message) : base(message) {
        }

        /// <summary>
        /// Constructor for inner exceptions handling.
        /// </summary>
        public VlcInternalException(string message, Exception inner) : base(message, inner) {
        }

        /// <summary>
        /// Constructor with serialization support.
        /// </summary>
        public VlcInternalException(SerializationInfo info, StreamingContext context) : base(info, context) {
        }
    }
}
